我們是屬於Web Application應用程式開發 ,在雲端上的選擇有以下三種方向:
在專案的行進間,除有特殊系統需求,通常都不會用VM的方式帶起服務,因VM有以下情況需要處理:
以上解決方法都可能需要配置人力或是額外找尋軟體的方式處理,除非公司本來就有專業SA人員可以協助,不然我們通常都會走託管的Container或是Serverless Computing方向選擇。
圖片來源:https://commons.wikimedia.org/wiki/File:Kubernetes_logo.svg
在Serverless上我們必須要提到一個非常優異的開放原始碼的系統Kubernetes。打開 Kubernetes 的官網,我們可以看到關於 Kubernetes 服務的描述為:
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
簡單來說使用Kubernetes(K8S)可以自動化地部署及管理多台機器上的多個容器(Container)。
根據官網的描述三個重點( deployment, scaling, and management),可以簡單說明如下:
Kubernetes 最基本的元件:Pod、Worker Node、Master Node、Cluster 四種。
圖片來源
我們上面介紹了開源的Kubernetes,接下來會為各位介紹Google託管的Google Kubernetes Engine (GKE)。GKE與Open Source的Kubernetes究竟有什麼差別,在GKE上Google保證每月SLA為99.5%以上,但是使用GKE是有可能需要付出成本的。
GKE在建立Cluster有提供兩種模式:
兩者的詳細比較表可以參考以下Google Cloud提供的比較表。GKE有提供每個月$74.40 美元免費額度,不管是Standard或是Autopilt第一套不用收錢,超過的已使用時間來計費
在專案建置上,團隊有針對是否要使用GKE Autopilot或是使用Cloud Run上更厲害的Serverless Computing架構。但是越方便的服務,就有可能被雲端業者綁架,導致之後如果搬移會花費很多間去修改原先的架構,在這種前提下,我們最後選擇以GKE Standard做後續專案建置。